<?php
/**
 * 数据库初始化脚本
 * 用于创建数据库、导入表结构和基础数据
 */

// 加载配置
require_once __DIR__ . '/../config/database.php';

// 设置错误报告
error_reporting(E_ALL);
ini_set('display_errors', 1);

echo "开始初始化数据库...\n";

try {
    // 连接到MySQL服务器（不指定数据库）
    $dsn = "mysql:host=" . DB_HOST . ";charset=" . DB_CHARSET . ";port=" . DB_PORT;
    $pdo = new PDO($dsn, DB_USERNAME, DB_PASSWORD);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "成功连接到MySQL服务器\n";
    
    // 创建数据库（如果不存在）
    $dbName = DB_NAME;
    $sql = "CREATE DATABASE IF NOT EXISTS `$dbName` CHARACTER SET " . DB_CHARSET . " COLLATE " . DB_CHARSET . "_unicode_ci";
    
    if ($pdo->exec($sql) !== false) {
        echo "数据库 '$dbName' 创建成功或已存在\n";
        
        // 选择数据库
        $pdo->exec("USE `$dbName`");
        
        // 读取SQL文件内容
        $sqlFile = __DIR__ . '/../sql/setup.sql';
        
        if (file_exists($sqlFile)) {
            $sql = file_get_contents($sqlFile);
            
            if ($sql) {
                echo "从 $sqlFile 加载SQL脚本\n";
                
                // 执行SQL语句
                $statements = explode(';', $sql);
                
                foreach ($statements as $statement) {
                    $statement = trim($statement);
                    
                    if (!empty($statement)) {
                        $pdo->exec($statement);
                        echo ".";
                    }
                }
                
                echo "\n数据库表结构和基础数据导入成功\n";
            } else {
                echo "无法读取SQL文件内容\n";
            }
        } else {
            echo "SQL文件不存在: $sqlFile\n";
        }
    } else {
        echo "创建数据库失败\n";
    }
} catch (PDOException $e) {
    echo "数据库错误: " . $e->getMessage() . "\n";
}

echo "数据库初始化完成\n"; 